<?php

/**
 * This is the model class for table "ramps".
 *
 * The followings are the available columns in table 'ramps':
 * @property integer $Id
 * @property integer $Provided
 * @property integer $RampType
 * @property double $RampWidth
 * @property string $ClassIndResOnly
 * @property integer $RailingsProvided
 * @property double $HeightFromFloor
 * @property integer $AnyEnclosureProvided
 * @property string $EnclosureConstruction
 * @property integer $AreFireDoorsProvided
 * @property double $FireDoorWidth
 * @property string $FireDoorConstruction
 * @property integer $DoorEquippedWithSelfClosingDevice
 * @property integer $DoorWithProperRating
 * @property integer $DoorProvidedWithVisionPanel
 * @property string $IfYesMadeOf
 * @property integer $DoorSwingingInTheDirectionOfExitTravel
 * @property string $AnyObstruction
 * @property string $TerminationOfExit
 * @property integer $Establishment_Id
 *
 * The followings are the available model relations:
 * @property Establishments $establishment
 */
class Ramps extends CActiveRecord
{
	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return 'ramps';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('Provided, RampType, RailingsProvided, AnyEnclosureProvided, AreFireDoorsProvided, DoorEquippedWithSelfClosingDevice, DoorWithProperRating, DoorProvidedWithVisionPanel, DoorSwingingInTheDirectionOfExitTravel, Establishment_Id', 'numerical', 'integerOnly'=>true),
			array('RampWidth, HeightFromFloor, FireDoorWidth', 'numerical'),
			array('ClassIndResOnly, EnclosureConstruction, FireDoorConstruction, IfYesMadeOf, AnyObstruction, TerminationOfExit', 'length', 'max'=>45),
			// The following rule is used by search().
			// @todo Please remove those attributes that should not be searched.
			array('Id, Provided, RampType, RampWidth, ClassIndResOnly, RailingsProvided, HeightFromFloor, AnyEnclosureProvided, EnclosureConstruction, AreFireDoorsProvided, FireDoorWidth, FireDoorConstruction, DoorEquippedWithSelfClosingDevice, DoorWithProperRating, DoorProvidedWithVisionPanel, IfYesMadeOf, DoorSwingingInTheDirectionOfExitTravel, AnyObstruction, TerminationOfExit, Establishment_Id', 'safe', 'on'=>'search'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
			'establishment' => array(self::BELONGS_TO, 'Establishments', 'Establishment_Id'),
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'Id' => 'ID',
			'Provided' => 'Provided',
			'RampType' => 'Ramp Type',
			'RampWidth' => 'Ramp Width',
			'ClassIndResOnly' => 'Class Ind Res Only',
			'RailingsProvided' => 'Railings Provided',
			'HeightFromFloor' => 'Height From Floor',
			'AnyEnclosureProvided' => 'Any Enclosure Provided',
			'EnclosureConstruction' => 'Enclosure Construction',
			'AreFireDoorsProvided' => 'Are Fire Doors Provided',
			'FireDoorWidth' => 'Fire Door Width',
			'FireDoorConstruction' => 'Fire Door Construction',
			'DoorEquippedWithSelfClosingDevice' => 'Door Equipped With Self Closing Device',
			'DoorWithProperRating' => 'Door With Proper Rating',
			'DoorProvidedWithVisionPanel' => 'Door Provided With Vision Panel',
			'IfYesMadeOf' => 'If Yes Made Of',
			'DoorSwingingInTheDirectionOfExitTravel' => 'Door Swinging In The Direction Of Exit Travel',
			'AnyObstruction' => 'Any Obstruction',
			'TerminationOfExit' => 'Termination Of Exit',
			'Establishment_Id' => 'Establishment',
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 *
	 * Typical usecase:
	 * - Initialize the model fields with values from filter form.
	 * - Execute this method to get CActiveDataProvider instance which will filter
	 * models according to data in model fields.
	 * - Pass data provider to CGridView, CListView or any similar widget.
	 *
	 * @return CActiveDataProvider the data provider that can return the models
	 * based on the search/filter conditions.
	 */
	public function search()
	{
		// @todo Please modify the following code to remove attributes that should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('Id',$this->Id);
		$criteria->compare('Provided',$this->Provided);
		$criteria->compare('RampType',$this->RampType);
		$criteria->compare('RampWidth',$this->RampWidth);
		$criteria->compare('ClassIndResOnly',$this->ClassIndResOnly,true);
		$criteria->compare('RailingsProvided',$this->RailingsProvided);
		$criteria->compare('HeightFromFloor',$this->HeightFromFloor);
		$criteria->compare('AnyEnclosureProvided',$this->AnyEnclosureProvided);
		$criteria->compare('EnclosureConstruction',$this->EnclosureConstruction,true);
		$criteria->compare('AreFireDoorsProvided',$this->AreFireDoorsProvided);
		$criteria->compare('FireDoorWidth',$this->FireDoorWidth);
		$criteria->compare('FireDoorConstruction',$this->FireDoorConstruction,true);
		$criteria->compare('DoorEquippedWithSelfClosingDevice',$this->DoorEquippedWithSelfClosingDevice);
		$criteria->compare('DoorWithProperRating',$this->DoorWithProperRating);
		$criteria->compare('DoorProvidedWithVisionPanel',$this->DoorProvidedWithVisionPanel);
		$criteria->compare('IfYesMadeOf',$this->IfYesMadeOf,true);
		$criteria->compare('DoorSwingingInTheDirectionOfExitTravel',$this->DoorSwingingInTheDirectionOfExitTravel);
		$criteria->compare('AnyObstruction',$this->AnyObstruction,true);
		$criteria->compare('TerminationOfExit',$this->TerminationOfExit,true);
		$criteria->compare('Establishment_Id',$this->Establishment_Id);

		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}

	/**
	 * Returns the static model of the specified AR class.
	 * Please note that you should have this exact method in all your CActiveRecord descendants!
	 * @param string $className active record class name.
	 * @return Ramps the static model class
	 */
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}
}
